const app = getApp()
const api = require('../../utils/api')

Page({
  data: {
    hasSufficientData: false,
    hasGlucoseData: false,
    hasBloodPressureData: false,
    hasWeightData: false,
    
    // 分析摘要
    overallEvaluation: '需要更多数据进行全面评估',
    trendAnalysis: '暂无足够数据分析趋势',
    goalAchievement: '未设置健康目标或数据不足',
    
    // 血糖分析
    glucoseAnalysis: {
      targetRate: 65,
      highRate: 25,
      normalRate: 65,
      lowRate: 10,
      variationStatus: 'warning',
      variationText: '波动较大',
      variationDesc: '血糖波动较大，建议规律饮食，避免暴饮暴食，控制碳水化合物摄入'
    },
    
    // 血压分析
    bpAnalysis: {
      targetRate: 70,
      classification: [
        { label: '正常', count: 5, color: '#4CAF50' },
        { label: '偏高', count: 2, color: '#ff9f43' },
        { label: '高血压', count: 0, color: '#FF5A5F' },
        { label: '偏低', count: 1, color: '#007AFF' }
      ],
      totalCount: 8,
      morningStatus: 'good',
      morningText: '无晨峰',
      morningDesc: '未发现明显的晨起血压升高现象，继续保持良好的作息习惯'
    },
    
    // 体重分析
    weightAnalysis: {
      avgBMI: 23.5,
      bmiPercentage: 55, // 在BMI刻度上的位置百分比
      bmiCategory: '正常',
      bmiDesc: '您的BMI指数在理想范围内，继续保持健康的生活方式',
      change: '-1.2',
      changeDirection: 'down',
      changeDesc: '过去30天内体重下降了1.2公斤，降幅平稳，符合健康减重要求',
      goalProgress: 60,
      goalDesc: '距离目标体重还有2公斤，按照当前速度，预计在6周内达成'
    },
    
    // 改善建议
    recommendations: [
      {
        id: 1,
        icon: '🥗',
        title: '饮食调整',
        description: '增加膳食纤维摄入，选择低GI食物，有助于稳定血糖'
      },
      {
        id: 2,
        icon: '🏃',
        title: '运动建议',
        description: '每周至少进行150分钟中等强度有氧运动，如快走、游泳或骑自行车'
      },
      {
        id: 3,
        icon: '⏰',
        title: '作息调整',
        description: '保持规律作息，充足睡眠有助于控制血压和改善代谢健康'
      }
    ]
  },

  onLoad() {
    this.checkDataSufficiency();
    this.loadAnalysisData();
  },
  
  onShow() {
    this.checkDataSufficiency();
    this.loadAnalysisData();
  },
  
  // 检查数据是否足够
  checkDataSufficiency() {
    // 这里应该是检查数据库中是否有足够的数据进行分析
    // 为了演示，使用随机值
    const hasSufficientData = Math.random() > 0.3;
    const hasGlucoseData = Math.random() > 0.3;
    const hasBloodPressureData = Math.random() > 0.3;
    const hasWeightData = Math.random() > 0.3;
    
    this.setData({
      hasSufficientData,
      hasGlucoseData,
      hasBloodPressureData,
      hasWeightData
    });
  },
  
  // 加载分析数据
  loadAnalysisData() {
    // 这里应该是从API获取分析数据
    // 为了演示，使用随机数据
    
    if (this.data.hasSufficientData) {
      // 更新整体评估
      this.setData({
        overallEvaluation: '您的健康状况总体良好，血糖、血压控制在目标范围内，体重变化平稳',
        trendAnalysis: '过去30天血糖平均值下降5%，血压稳定，体重下降1.2公斤',
        goalAchievement: '已达成血糖控制目标，血压和体重控制接近目标值'
      });
    }
    
    if (this.data.hasGlucoseData) {
      // 更新血糖分析
      const targetRate = Math.floor(60 + Math.random() * 30);
      const highRate = Math.floor(100 - targetRate) / 2;
      const lowRate = 100 - targetRate - highRate;
      
      this.setData({
        glucoseAnalysis: {
          targetRate: targetRate,
          highRate: Math.floor(highRate),
          normalRate: targetRate,
          lowRate: Math.floor(lowRate),
          variationStatus: targetRate > 70 ? 'good' : 'warning',
          variationText: targetRate > 70 ? '波动适中' : '波动较大',
          variationDesc: targetRate > 70 
            ? '血糖波动在合理范围内，继续保持规律的生活方式' 
            : '血糖波动较大，建议规律饮食，避免暴饮暴食，控制碳水化合物摄入'
        }
      });
    }
    
    if (this.data.hasBloodPressureData) {
      // 更新血压分析
      const targetRate = Math.floor(60 + Math.random() * 30);
      const normalCount = Math.floor(5 + Math.random() * 3);
      const highCount = Math.floor(Math.random() * 3);
      const veryHighCount = Math.floor(Math.random() * 2);
      const lowCount = Math.floor(Math.random() * 2);
      const totalCount = normalCount + highCount + veryHighCount + lowCount;
      
      this.setData({
        bpAnalysis: {
          targetRate: targetRate,
          classification: [
            { label: '正常', count: normalCount, color: '#4CAF50' },
            { label: '偏高', count: highCount, color: '#ff9f43' },
            { label: '高血压', count: veryHighCount, color: '#FF5A5F' },
            { label: '偏低', count: lowCount, color: '#007AFF' }
          ],
          totalCount: totalCount,
          morningStatus: highCount > 2 ? 'warning' : 'good',
          morningText: highCount > 2 ? '轻微晨峰' : '无晨峰',
          morningDesc: highCount > 2 
            ? '晨起时血压有轻微升高趋势，建议在起床后休息片刻再活动' 
            : '未发现明显的晨起血压升高现象，继续保持良好的作息习惯'
        }
      });
    }
    
    if (this.data.hasWeightData) {
      // 更新体重分析
      const avgBMI = 18.5 + Math.random() * 10;
      let bmiCategory, bmiDesc;
      
      if (avgBMI < 18.5) {
        bmiCategory = '偏瘦';
        bmiDesc = '您的BMI指数偏低，建议适当增加营养摄入，增加肌肉量';
      } else if (avgBMI < 24) {
        bmiCategory = '正常';
        bmiDesc = '您的BMI指数在理想范围内，继续保持健康的生活方式';
      } else if (avgBMI < 28) {
        bmiCategory = '超重';
        bmiDesc = '您的BMI指数偏高，属于超重范围，建议控制饮食并增加运动';
      } else {
        bmiCategory = '肥胖';
        bmiDesc = '您的BMI指数过高，处于肥胖范围，建议咨询医生制定减重计划';
      }
      
      // 计算BMI在刻度上的位置百分比（18.5-35之间）
      const bmiPercentage = Math.min(100, Math.max(0, ((avgBMI - 18.5) / (35 - 18.5)) * 100));
      
      const change = (Math.random() > 0.5 ? -1 : 1) * (Math.random() * 2).toFixed(1);
      const goalProgress = Math.floor(Math.random() * 100);
      
      this.setData({
        weightAnalysis: {
          avgBMI: avgBMI.toFixed(1),
          bmiPercentage: bmiPercentage,
          bmiCategory: bmiCategory,
          bmiDesc: bmiDesc,
          change: change,
          changeDirection: change < 0 ? 'down' : change > 0 ? 'up' : '',
          changeDesc: change < 0 
            ? `过去30天内体重下降了${Math.abs(change)}公斤，降幅平稳，符合健康减重要求`
            : change > 0 
              ? `过去30天内体重增加了${change}公斤，请注意控制饮食和增加运动`
              : '过去30天内体重保持稳定，没有明显变化',
          goalProgress: goalProgress,
          goalDesc: goalProgress < 100 
            ? `距离目标体重还有${(Math.random() * 5).toFixed(1)}公斤，按照当前速度，预计在${Math.floor(1 + Math.random() * 12)}周内达成`
            : '恭喜您已经达成体重目标，继续保持良好习惯'
        }
      });
    }
  },
  
  // 刷新分析
  refreshAnalysis() {
    wx.showToast({
      title: '更新分析中...',
      icon: 'loading',
      duration: 2000
    });
    
    this.checkDataSufficiency();
    this.loadAnalysisData();
  },
  
  // 前往记录页面
  goToRecord() {
    wx.navigateTo({
      url: '/pages/record/record'
    });
  },
  
  // 前往血糖记录
  goToGlucoseRecord() {
    wx.navigateTo({
      url: '/pages/record/record?type=glucose'
    });
  },
  
  // 前往血压记录
  goToBPRecord() {
    wx.navigateTo({
      url: '/pages/record/record?type=bloodPressure'
    });
  },
  
  // 前往体重记录
  goToWeightRecord() {
    wx.navigateTo({
      url: '/pages/record/record?type=weight'
    });
  }
}) 